import VisBaseNode from "./VisBaseNode";
import VisConstructorNode from "./VisConstructorNode";
import VisEnumNode from "./VisEnumNode";
import VisFieldNode from "./VisFieldNode";
import VisMethodNode from "./VisMethodNode";

export default interface VisClassOrInterfaceNode extends VisBaseNode {
  identifier: string;
  isInterface: boolean;
  methods: VisMethodNode[];
  constructors: VisConstructorNode[];
  fields: VisFieldNode[];
  typeParameters: string[];
  modifiers: string[];
  annotations: string[];
  extendedClassName: string;
  implementedInterfaceNames: string[];
  classOrInterfaces?: VisClassOrInterfaceNode[];
  enums?: VisEnumNode[];
}
